System and method for transporting information to services in a network environment

ABSTRACT

An example method is provided in one example embodiment and may include receiving a packet for a subscriber at a gateway, wherein the gateway includes a local policy anchor for interfacing with one or more policy servers and one or more classifiers for interfacing with one or more service chains, each service chain including one or more services accessible by the gateway; determining a service chain to receive the subscriber&#39;s packet; appending the subscriber&#39;s packet with a header, wherein the header includes, at least in part, identification information for the subscriber and an Internet Protocol (IP) address for the local policy anchor; and injecting the packet including the header into the service chain determined for the subscriber.

RELATED APPLICATION

This application is a continuation (and claims the benefit of priority under 35 U.S.C. §120) of U.S. application Ser. No. 14/279,724, filed May 16, 2014, entitled “SYSTEM AND METHOD FOR TRANSPORTING INFORMATION TO SERVICES IN A NETWORK ENVIRONMENT,” Inventors Hendrikus G. P. Bosch, et al. The disclosure of the prior application is considered part of (and is incorporated by reference in) the disclosure of this application.

TECHNICAL FIELD

This disclosure relates in general to the field of communications and, more particularly, to a system and method for transporting information to services in a network environment.

BACKGROUND

Networking architectures have grown increasingly complex in communication environments. Data traffic has grown extensively in recent years, which has significantly increased the demands on network resources. Network operators often provide differentiated services to subscribers according to one or more policies for the subscribers. As the number of mobile subscribers and the number of operator services provided to mobile subscribers increases, efficient management of communication resources becomes even more critical. In some instances, providing multiple services to multiple subscribers may cause network equipment to be overwhelmed, provide suboptimal performance or create congestion in the network. Accordingly, there are significant challenges in managing network resources, particularly for communicating information between services operating on subscriber data traffic.

BRIEF DESCRIPTION OF THE DRAWINGS

To provide a more complete understanding of the present disclosure and features and advantages thereof, reference is made to the following description, taken in conjunction with the accompanying figures, wherein like reference numerals represent like parts, in which:

FIG. 1 is a simplified block diagram illustrating a communication system to facilitate transporting information to services in a network environment according to one embodiment of the present disclosure;

FIG. 2 is a simplified block diagram illustrating example details associated with one potential embodiment of the communication system;

FIG. 3 is a simplified block diagram illustrating example details associated with a service chain in accordance with one embodiment of the communication system;

FIG. 4 is a simplified flow diagram illustrating example operations associated with transporting information to services in accordance with one potential embodiment of the communication system;

FIG. 5 is a simplified flow diagram illustrating example operations associated with consuming policy and/or charging information by one or more services in accordance with one potential embodiment of the communication system; and

FIG. 6 is a simplified flow diagram illustrating example operations associated with communicating new or update policy and/or charging information to one or more services in accordance with one potential embodiment of the communication system.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

Overview

A method is provided in one example embodiment and may include receiving a packet for a subscriber at a gateway, wherein the gateway includes a local policy anchor for interfacing with one or more policy servers and one or more classifiers for interfacing with one or more service chains, each service chain including one or more services accessible by the gateway; determining a service chain to receive the subscriber's packet; appending the subscriber's packet with a header, wherein the header includes, at least in part, identification information for the subscriber and an Internet Protocol (IP) address for the local policy anchor; and injecting the packet including the header into the service chain determined for the subscriber. In some instances, the subscriber's packet may be a First-Sign-of-Life (FSOL) packet and determining the service chain to receive the subscriber's packet may further include determining, by the local policy anchor, the service chain to receive the subscriber's packet based on policy information for the subscriber from the one or more policy servers; and communicating, at least in part, the determined service chain and the IP address of the local policy anchor to a classifier included in the gateway for interfacing with the determined service chain.

In some cases, the communicating may include communicating at least one of policy information and charging information associated with one or more services in the determined service chain and wherein the classifier maintains an association between the subscriber, the determined service chain and the at least one of the policy information and the charging information for use in subsequent headers for one or more subsequent subscriber packets. In some instances, the header for the subscriber's packet may be a Network Service Header (NSH). In other instances, the header may include at least one of policy information and charging information associated with at least one service in the determined service chain. In yet other instances, the one or more policy servers can include at least one of: a policy charging and rules function (PCRF); an online charging system (OCS); and an offline charging system (OFCS).

In other cases, the method may further include consuming, by the at least one service, at least one of policy information and charging information included in the header to perform at least one of: enforcing one or more policies for the subscriber; and initiating a policy session for the subscriber with the local policy anchor using the IP address for the local policy anchor. In still other cases, the method may include receiving, by the local policy anchor, a policy update from a policy server for a service included in a service chain; and communicating the policy update to the service by performing at least one of: pushing, from the local policy anchor, the policy update to the service if the service has a policy session established with the local policy anchor for a subscriber; and appending a packet with the policy update.

Example Embodiments

Turning to FIG. 1, FIG. 1 is a simplified block diagram illustrating a communication system 10 to facilitate transporting information to services in a network environment according to one embodiment of the present disclosure. This particular configuration may be tied to the 3rd Generation Partnership Project (3GPP) Evolved Packet System (EPS) architecture, also sometimes referred to as the Long Term Evolution (LTE) EPS architecture. Alternatively, the depicted architecture may be applicable to other environments equally.

The example architecture of FIG. 1 may include multiple subscribers operating user equipment (UE) 12 a-12 b within a mobile access network 60, which may be in communication with a gateway general packet radio service (GPRS) support node (GGSN)/packet data network (PDN) gateway 20, which may interface with a Gi local access network (LAN) service gateway (SG) 30. Gi-LAN SG 30 may further interface with an internet 50. Communication system 10 may further include a 3GPP Authentication, Authorization and Accounting (AAA) element 42, a Policy and Charging Rules Function (PCRF) 44, an Online Charging System (OCS) 46 and an Offline Charging System (OFCS) 48. Gi-LAN SG 30 may further include a controller 32, a local policy anchor 34, classifiers 38 a-38 b and services A-E, which may be logically connected, to form one or more service chains 36.1-36.N. For example, service chain 36.1 may include services A, B, C and D connected together; service chain 36.2 may include services C, B and A connected together; and service chain 36.N may include services A, D, C and E connected together. Each service chain 36.1-36.N may interface with classifiers 38 a-38 b, which may inject or steer data flows for subscribers through one or more of service chains 36.1-36.N. In various embodiments services A-E may be hosted or accessible by Gi-LAN SG 30.

As discussed herein in this Specification, the terms ‘user equipment’, ‘user’ and ‘subscriber’ may be referred to interchangeably. Further, as discussed herein in this specification, PCRF 44, OCS 46 and/or OFCS 48 may be referred to generally as ‘policy servers’ or ‘charging servers’. Additionally as discussed herein in this Specification, local policy anchor 34 may be referred to generally as a ‘local policy anchor point’. Although illustrated separate, classifiers 38 a-38 b may be implemented as a common classifier unit within Gi-LAN SG 30 for interfacing with service chains 36.1-36.N.

Each of the elements of FIG. 1 may couple to one another through simple interfaces (as illustrated) or through any other suitable connection (wired or wireless), which provides a viable pathway for network communications. Additionally, any one or more of these elements may be combined or removed from the architecture based on particular configuration needs. For example, communication system 10 may include a configuration capable of transmission control protocol/Internet protocol (TCP/IP) communications for the transmission or reception of packets in a network. Communication system 10 may also operate in conjunction with a user datagram protocol/IP (UDP/IP) or any other suitable protocol where appropriate and based on particular needs.

Also provided in the architecture of FIG. 1 is a series of interfaces, which can offer mobility, policy control, AAA functions and/or charging activities (offline and/or online) for various network elements. For example, interfaces can be used to exchange point of attachment, location, and/or access data for one or more end users, for example, users operating UE 12 a-12 b. Resource, accounting, location, access network information, network address translation (NAT) control, etc. can be exchanged using a remote authentication dial in user service (RADIUS) protocol or any other suitable protocol where appropriate. Other protocols that can be used in communication system 10 can include a DIAMETER protocol, service gateway interface (SGI), terminal access controller access-control system (TACACS), TACACS+, etc.

As shown in FIG. 1, a RADIUS-based interface may be maintained between AAA element 42, GGSN/PDN gateway (PGW) 20 and Gi-LAN SG 30. Communication system 10 may be configured with various DIAMETER-based interfaces to manage and provision policy and/or charging information for Gi-LAN SG 30. For example, Gx and/or Sd DIAMETER-based interfaces may be maintained between PCRF 44, GGSN/PGW 20 and Gi-LAN SG 30. Additionally, a Gy DIAMETER-based interface may be maintained between OCS 46 and Gi-LAN SG 30. Further, a Gz DIAMETER-based interface may be maintained between OFCS 48 and Gi-LAN SG 30.

In more general terms, 3GPP defines the EPS as specified in TS 23.401, TS 36.401, TS 29.212, etc. The EPS generally consists of UE access networks and an Evolved Packet Core (EPC). Access networks (e.g., mobile access network 60) may include 3GPP access networks including legacy access networks such as GSM EDGE Radio Access Network (GERAN), UMTS Terrestrial Radio Access Network (UTRAN), generally referred to as 3G, or LTE access networks such as Evolved UTRAN (E-UTRAN), generally referred to as 4G or LTE, or may include non-3GPP IP access networks such as digital subscriber line (DSL), Cable, WiMAX, code division multiplex access (CDMA) 2000, WiFi, or the Internet.

Before detailing some of the operational aspects of FIG. 1, it is important to understand characteristics of Gi-LAN SG 30. The following contextual information may be viewed as a basis from which the present disclosure may be properly explained. Such information is offered earnestly for teaching purposes only and, therefore should not be construed in any way to limit the broad teachings of the present disclosure. Gi-LAN SG 30 may provide a Software Defined Networking (SDN) architecture for chaining or linking together services A-E to form service chains 36.1-36.N. SDN is an approach to configuring computer networking equipment and software that separates and abstracts the control plane and data plane of networking systems. SDN decouples the control plane that makes decisions about where traffic is sent from the underlying data plane that forwards traffic to the selected destination, which may allow network administrators/service providers to manage network services through abstraction of lower level functionality into virtualized services that may be hosted or accessible by Gi-LAN SG 30.

As illustrated in FIG. 1, each service chain 36.1-36.N may be configured with a service overlay or tunnel (dashed lines for each service chain) using SDN techniques, which may provide a mechanism to link together one or more of services A-E, which may be anchored on one or more of service chains 36.1-36.N. In various embodiments, a forwarding or routing table may be maintained for each service anchored on a given service chain (e.g., services A-D for service chain 36.1, etc.), which may enable forwarding packets from one service to another along the service chain or to a classifier (e.g., for a service at the end of a service chain, depending on traffic flow direction from or to a subscriber). Although only five services are illustrated in FIG. 1, it should be understood that any number of services may be hosted or accessible through Gi-LAN SG 30. Further, any number of services may be anchored on a given service chain. In various embodiments, controller 32 may be an SDN controller provisioned with one or more applications to interface with one or more policy and/or charging servers (e.g., PCRF 44, OCS 46, OFCS 48) and local policy anchor 34 in order to facilitate steering subscriber data traffic into one or more service chains 36.1-36.N using classifiers 38 a-38 b.

Thus, Gi-LAN SG 30 may provide an infrastructure to host one or more services A-E that may augment mobile subscriber packet flows between a mobile node (e.g., UE 12 a-12 b) and remote servers (e.g., servers accessible via internet 50). In various embodiments, services hosted or accessible by Gi-LAN SG 30 can include, but not be limited to, TCP optimizers, caching (DNS) servers, Hypertext Transfer Protocol (HTTP) proxies, analytics services, Deep Packet Inspection (DPI) services, Network Address and Port Translation (NA(P)T) functions, parental controls, captive portals, user interactions, video optimization, web optimization, charging and policy, etc.

Services A-E hosted or accessible by Gi-LAN SG 30 can be chained together to enable a service provider to create a unique service offering for a mobile subscriber and/or sets of mobile subscribers based on the one or more services. For example, on a First-Sign-of-Life (FSOL) packet for a given mobile subscriber's packet flow, Gi-LAN SG 30 may classify the packet flow according to a classification provided by a policy infrastructure (e.g., PCRF, 44, OCS 46, OFCS 48, etc.). This classification may be used to then uniquely map the subscriber's flow to a particular service chain, which may enable a service provider to create ‘service plans’ for specific mobile traffic (e.g., over-the-top voice vs. service-provider voice, video plans, etc.).

As used herein in this Specification, the term ‘service plans’ may refer to a set of services to be applied to a subset of the mobile subscribers (e.g., a AVIS® service plan with a series of services specifically for AVIS® employees), as opposed to PCRF specific plans such as gold, silver, bronze, etc., which are often used to apportion traffic for all mobile subscribers of a particular service provider.

For services that may be anchored on a service chain to operate well in a 3GPP environment, these services should be provisioned with appropriate subscriber specific parameters. In a 3GPP system these parameters are often kept in databases associated with a PCRF, OCS, OFCS, etc. (e.g., a Subscription Profile Repository (SPR), User Data Repository (UDR), etc.). In various embodiments, PCRF 44, OCS, 46, and/or OFCS 48 policy control elements may contain or reference a subscriber database that can be disseminated to both a 3GPP access system (e.g., AAA element 42) and to Gi-LAN SG 30. Based on information such as, for example, subscription information, congestion information, radio-access-type information, etc. Gi-LAN SG 30 may enforce the rules for service selection and/or flow steering through multiple services running in Gi-LAN SG 30. Thus, Gi-LAN SG 30 may represent a Policy Control and Enforcement Function (PCEF).

Gi-LAN SG 30 may provide or host services for all of service provider's mobile subscribers; each service catering to potentially many individual packet flows. Given that each mobile subscriber can generate many independent packet flows, the request performance and capacity of policy and charging network elements (e.g., PCRF 44, OCS 46, OFCS 48, etc.) presents potential shortcomings that are an area of concern. Thus, a hierarchical policy classification and distribution architecture is important to enable the policy infrastructure for communication system 10 to scale with the number of services anchored on a given chain, the number of subscribers steered onto a chain, and/or the number of packet flows created by the independent mobile subscribers.

In accordance with one embodiment, communication system 10 can overcome the aforementioned shortcomings (and others) by providing scalable policy distribution to chained services for mobile subscribers serviced via Gi-LAN SG 30 through use of packet service headers that may be appended to IP packets from mobile subscribers. The packet service headers may include, for example, subscriber identification information and an IP address for a local policy anchor as well as policy information, charging information, etc. that may be consumed by one or more services anchored on a service chain. Accordingly, policy distribution to services anchored on a chain may depend only on the number of subscribers that are active in Gi-LAN SG 30. In various embodiments, the packet service header may be based on a Network Service Header (NSH) as defined by Internet Engineering Task Force (IETF) standards.

As illustrated in FIG. 1, classifier 38 a, 38 b for each statically defined service chain 36.1-36.N can host local policy anchor 34, which may act as a policy cache towards a policy server (e.g., PCRF 44, OCS 46, etc.). Additionally, local policy anchor 34 may represent itself as a local policy server to all the services anchored on each statically defined service chain 36.1-36.N. Every IP packet carried over a given service chain may be appended with a packet service header, which, as noted above, may carry parameters such as the mobile subscriber identity, IP address of the local policy anchor point and additional policy related information (e.g., PCRF rules, online and/or offline charging rules, etc.) that may be consumed by one or more services anchored on a service chain.

In one or more embodiments, the IP address of the local policy anchor point can be included (e.g., encapsulated) in the NSH packet header to enable a service to pull additional policy parameters that may not be carried in the IP packet itself from the local policy and charging anchor (e.g., local policy anchor 34). Thus, the IP address may act as a configuration parameter passed to a service, which may allow the service to establish a policy control session with local policy anchor 34, PCRF 44, OCS 46 and/or OFCS 48. In one or more embodiments, this configuration can also be realized through dynamic service appliance configuration.

Since classifiers 38 a-38 b for each service chain may be provided with its own policy anchor point (e.g., local policy anchor 34), and all policy requests from a service chain can be directed to the policy anchor point for a chain, the load on the standard policy infrastructure may be only dependent on the number of subscribers active in Gi-LAN SG. Once a local policy anchor point has cached the policy information for a subscriber, no further policy information may be needed from the policy infrastructure. However, if, for example, a policy server (e.g., PCRF 44, OCS, 46, OFCS 48) for the policy infrastructure needs to enforce a new policy or update a policy, it may relay the new and/or updated policies to local policy anchor 34. In various embodiments, Gi-LAN SG 30, via classifiers 38 a-38 b, can then enforce the new and/or updated policies on the services in a given chain by including the new policy rules in-line with IP traffic in the NSH packet header for packets flowing through the service chain. Alternatively, in one or more embodiments, services anchored on a given chain may maintain a policy session with local policy anchor 34, which may enable local policy anchor 34 to enforce new and/or updated policies by pushing the new and/or updated policy rules onto the services anchored on the chain.

Thus, the solution provided by communication system 10 may provide for the combination of a per-service chain policy cache (e.g., local policy anchor 34) for a classifier, combined with policy distribution to all services anchored on a chain by way of a standardized service header, which can carry subscriber information, configuration parameters, 3GPP policy and/or charging information as well as other types of policy and/or charging information, etc. to one or more services anchored on one or more service chains.

During operation, for example, a FSOL IP packet originating from a given UE (e.g., UE 12 a) may be communicated to Gi-LAN SG 30 and may be classified according to one or more policies provided by the policy infrastructure (e.g., PCRF 44, OCS 46, OFCS 48, etc.). Gi-LAN SG 30, via classifier 38 a, may forward the packet to local policy anchor 34. If local policy anchor 34 has not cached the mobile subscriber's policy information, it may load the subscriber's policy and/or charging information from a given policy server (e.g., PCRF 44, OCS 46, OFCS 48, and/or other similar policy server.) by way of one or more standardized DIAMETER-based interfaces (e.g., Gx/Sd, Gy, Gz, etc.). In various embodiments, policy and/or charging information may be retrieved or pulled from one or more policy and/or charging servers by controller 32 or may be published by such servers and periodically pushed to controller 32 over an appropriate DIAMETER-based interface or other similar policy control interface.

Local policy anchor 34 may execute the policies and/or charging rules/functions and may derive a classification, which can indicate a service chain to receive the flow. For purposes of the present example only, assume that the classification indicates that the subscribers flow should be forwarded to service chain 36.1, which may include services A, B, C and D hosted or accessible by Gi-LAN SG 30. Local policy anchor 34 may communicate or inform classifiers 38 a-38 b of the service chain classification determined for the subscriber's flow and may provide a set of parameters to the classifiers which can be encapsulated in an NSH packet header for the FSOL packet and subsequent packets of the subscriber's flow. Classifiers 38 a-38 b may store, among other things, the determined service chain classification for the subscribers flow as well as any parameters for the subscribers flow received from local policy anchor 34.

Gi-LAN SG 30 may inject, via classifier 38 a, the subscriber's IP packet into service chain 36.1 with the NSH packet header. If a service on service chain 36.1 enforces a policy and/or charging rule/function, it may use the information carried in the NSH packet header for enforcing the policy and/or charging and/or may initiate a policy session with local policy anchor 34. In case a service requires additional policy information, it can use the NSH carried header information for obtaining additional policy information from local policy anchor 34 such that no additional interaction with a policy and/or charging server (e.g., PCRF 44, OCS 46 and OFCS 48) may be needed.

As noted previously, the parameters contained in a service header (e.g., NSH packet header) may include, but not be limited to, a mobile subscriber identity for the subscriber, the IP address of local policy anchor 34 (or other configuration parameters), policy information, charging information, etc. In one or more embodiments, a subscriber's mobile subscriber identity may include, but not be limited to, International Mobile Subscriber Identity (IMSI), Mobile Subscriber Integrated Services Digital Network-Number (MSISDN), Temporary Mobile Subscriber Identity (TMSI), etc. In one or more embodiments, additional subscriber information may be included in the NSH header including, but not limited to, an International Mobile Station Equipment Identity (IMEI), an International Mobile Equipment Identity Software Version (IMEI-SV), Radio Access Technology (RAT) type, MSISDN, IMSI, etc.

In various embodiments, classifiers 38 a-38 b may maintain or store an association for each subscriber, including but not limited to, subscriber identification information, one or more determined service chains to receive the subscriber's packets, policy and/or charging information for one or more services on an associated service chain, etc. Once a subscriber's flow has been classified by local policy anchor 34, classifier 38 a may automatically append each of the subscriber's subsequent packets with a corresponding service header (e.g., NSH packet header) and inject the appended packet into the corresponding determined service chain for the subscriber. In a similar manner, each packet destined for the subscriber (e.g., the subscriber's UE) received from one or more remote servers, etc. that may be flowing from internet 50 may also be appended with a corresponding service header and injected into the determined service chain for the subscriber using classifier 38 b.

In one or more embodiments, policy and/or charging information for a subscriber may be discarded by local policy anchor 34 if there has not been any traffic for that subscriber for a pre-determined amount of time, or when an explicit de-activation may be communicated to local policy anchor 34 from a given policy server. In one or more embodiments, new policies for a given policy server can be enforced, updated, renewed, etc. for one or more services anchored on one or more service chains by the policy server ‘pushing’ its new policy information to local policy anchor 34. In one or more embodiments, local policy anchor 34 may relay the new policies to the service(s) by including the new policies in-line (e.g., through use of an NSH packet header, with or without a payload) on subsequent packet flows for chains including the service(s). In one or more embodiments, local policy anchor 34 may also ‘push’ the new policies onto the associated service(s) if the service(s) if the service(s) has established a policy session with local policy anchor 34.

Accordingly, the solution provided by communication system 10 may provide a hierarchical mechanism for policy distribution record collection via Gi-LAN SG 30. Classifier 38 a, 38 b may be adorned with its own local policy anchor point for each service chain 36.1-36.N operating through Gi-LAN SG 30. By appending, for each subscriber, IP packet flows entering Gi-LAN SG 30 with a service header (e.g., an NSH) various types of information may be distributed to associated services connected to a given chain. As noted, the information may include, but not be limited to, subscriber information (e.g., mobile subscriber identity, classification, etc.), IP address information of local policy anchor 34 (or other configuration parameters), and/or other policy and/or charging related information from one or more policy and/or charging servers (e.g., PCRF 44, OCS 46 and/or OFCS 48).

Thus, several advantages may be realized through the solution provided by communication system 10. These may be realized by the ability of Gi-LAN SG 30 to provide a local policy infrastructure that may scale only with the number of mobile subscribers active in Gi-LAN SG 30, which may help to avoid repeated requests to one or more policy servers by localizing such traffic within Gi-LAN SG 30. For example, local policy anchor 34 may field all policy requests for newly created mobile subscriber's packet flows and for all independent services that may be anchored on service chains hosted or accessible by Gi-LAN SG 30. Other advantages may be realized by the ability to piggyback subscriber information, policy and/or charging control information, configuration parameters, etc. in the data plane for packets flowing through a service chain using service headers (e.g., NSH packet headers) for subscriber packet flows, which may potentially reduce latency for the system.

In various embodiments, UE 12 a-12 b can be associated with users, employees, clients, customers, etc. wishing to initiate a flow in communication system 10 via some network. The terms “user equipment,” “mobile node,” “end user,” “user,” and “subscriber” are inclusive of devices used to initiate a communication, such as a computer, a personal digital assistant (PDA), a laptop or electronic notebook, a cellular telephone, an i-Phone™, iPad™, a Google Droid™ phone, an IP phone, or any other device, component, element, or object capable of initiating voice, audio, video, media, or data exchanges within communication system 10. UE 12 a-12 b may also be inclusive of a suitable interface to a human user such as a microphone, a display, a keyboard, or other terminal equipment.

UE 12 a-12 b may also be any device that seeks to initiate a communication on behalf of another entity or element such as a program, a database, or any other component, device, element, or object capable of initiating an exchange within communication system 10. Data, as used herein in this document, refers to any type of numeric, voice, video, media, or script data, or any type of source or object code, or any other suitable information in any appropriate format that may be communicated from one point to another. In certain embodiments, UE 12 a-12 b may have a bundled subscription for network access and application services (e.g., voice), etc. Once the access session is established, the user can register for application services as well, without additional authentication requirements. There can be two different user data repositories (e.g., AAA databases, whitelist databases, etc.): one for the access user profile and one for the application user profile. IP addresses can be assigned using dynamic host configuration protocol (DHCP), Stateless Address Auto-configuration, default bearer activation, etc., or any suitable variation thereof.

AAA element 42 is a network element responsible for accounting, authorization and authentication functions for UE 12 a-12 b. For AAA considerations, AAA element 42 may provide a mobile node IP address, the accounting session identification (Acct-Session-ID) and other mobile node states in appropriate messaging (e.g., via access-Request/access-Response messages). Authentication refers to the process where a subscriber's identity is authenticated, typically by providing evidence that it holds a specific digital identity such as an identifier and the corresponding credentials. The authorization function determines whether a particular subscriber is authorized to perform a given activity, typically inherited from authentication when logging on to an application or service. Authorization may be determined based on a range of restrictions, for example time-of-day restrictions, or physical location restrictions, or restrictions against multiple accesses by the same entity or user. Accounting refers to the tracking of network resource consumption by subscribers for the purpose of capacity and trend analysis, cost allocation, billing, etc. In addition, it may record events such as authentication and authorization failures, and include auditing functionality, which permits verifying the correctness of procedures carried out based on accounting data. In various embodiments, accounting messages can be sent for the following events: accounting-start when the IP session is initially created for the mobile node on the gateway; accounting-interim-update when a handover occurred between gateways; and an accounting-stop when the IP session is removed from the gateway serving the element. For roaming scenarios, the home routed case is fully supported by the architecture.

PCRF 44 may decide policy control and/or charging activities to apply to a given subscriber based on various Policy Charging and Control (PCC) rules. PCRF 44 can be configured to use user subscription information as a basis for the policy and charging control decisions. The subscription information may apply for both session-based and non-session based services. Additionally, PCRF 44 may determine PCC rules based on an application or service described to the PCRF from an Application Function (AF), which may be provisioned by a network service provider. In one or more embodiments, an AF may describe applications/services to PCRF 44 that may require dynamic policy and/or charging control for one or more subscribers. The dynamic policy and/or charging controls may include, but not be limited to, controlling the detection for service data flows, setting charging instructions for service data flows, setting QoS levels for service data flows and/or gating.

OCS 46 may provide online credit control rules/functions and OFCS 48 may provide offline credit control rules/functions for one or more subscribers within communication system 10. In various embodiments, OCS 46 and/or OFCS 48 may enable a service provider to manage services and/or application charging/rating rules/functions across all access types, device types and/or subscribers for communications system 10. Although only one OCS 46 and OFCS 48 are illustrated in FIG. 1, there may be multiple OCSs and OFCSs provisioned within communication system 10.

It should be understood that mobile access network 60 may include other elements, gateways, etc. that may make up an EPC for the network. The EPC generally comprises a Mobility Management Entity (MME), a serving gateway support node (SGSN), a serving gateway (SGW), a GGSN/PGW and a PCRF. The EPC components may be referred to generally as control nodes, control gateways or simply gateways. EPC components such as the MME, SGSN and SGW are not shown in FIG. 1 in order to highlight other features of communication system 10.

The MME is the primary control element for the EPC. Among other things, the MME provides for UE tracking and paging procedures including, for example, retransmissions, tracking area list management, idle mode UE tracking, etc. For example, the MME can maintain tracking information for UE regarding previous and current information for UE transitions between or within Radio Access Networks (RANs). The MME may further provide for UE bearer procedures including activation, deactivation and modification; SGW and GGSN/PGW selection for UE as well as authentication services. The SGW is a data plane element that can manage user mobility and interfaces with RANs. The SGW can also maintain data paths between radio access points, such as eNode Bs (eNodeBs), and the PGW. The GGSN/PGW may provide connectivity for UEs to external packet data networks, such as, for example the Internet. The SGSN may provide access for legacy universal mobile telecommunications systems (UMTS) network devices.

Turning to FIG. 2, FIG. 2 is a simplified block diagram illustrating additional details associated with one potential embodiment of communication system 10. FIG. 2 includes GGSN/PGW 20, Gi-LAN SG 30, AAA element 42, PCRF 44, OCS 46 and OFCS 48 of communication system 10. Each of these elements includes a respective processor 14 a-14 f and a respective memory element 16 a-16 f. Hence, appropriate software and/or hardware is being provisioned in GGSN/PGW 20, Gi-LAN SG 30, AAA element 42, PCRF 44, OCS 46 and OFCS 48 in order to facilitate transporting subscriber, service, policy and/or charging information in the network environment of communication system 10. Note that in certain examples, certain databases (e.g., for storing subscriber information, policy information, charging information (online and offline), service information for one or more services, combinations thereof or the like) can be consolidated with memory elements (or vice versa), or the storage can overlap/exist in any other suitable manner. UE 12 a-12 b, mobile access network 60 and internet 50 are also shown in FIG. 2.

In one example implementation, GGSN/PGW 20, Gi-LAN SG 30, AAA element 42, PCRF 44, OCS 46 and OFCS 48 are network elements, which are meant to encompass network appliances, servers, routers, switches, gateways, bridges, load balancers, firewalls, processors, modules, or any other suitable device, component, element, or object operable to exchange information that facilitates or otherwise helps coordinate transporting information to one or more services (e.g., for networks such as those illustrated in FIG. 2). In other embodiments, these operations and/or features may be provided external to these elements, or included in some other network device to achieve this intended functionality. Alternatively, one or more of these elements can include software (or reciprocating software) that can coordinate in order to achieve the operations and/or features, as outlined herein. In still other embodiments, one or more of these devices may include any suitable algorithms, hardware, software, components, modules, interfaces, or objects that facilitate the operations thereof. This may be inclusive of appropriate algorithms and communication protocols that allow for the effective exchange of data or information.

In regards to the internal structure associated with communication system 10, each of GGSN/PGW 20, Gi-LAN SG 30, AAA element 42, PCRF 44, OCS 46 and OFCS 48 can include memory elements for storing information to be used in achieving the information transportation operations, as outlined herein. Additionally, each of these devices may include a processor that can execute software or an algorithm to perform the information transportation activities as discussed in this Specification. These devices may further keep information in any suitable memory element [e.g., random access memory (RAM), read only memory (ROM), an erasable programmable read only memory (EPROM), application specific integrated circuit (ASIC), etc.], software, hardware, or in any other suitable component, device, element, or object where appropriate and based on particular needs. Any of the memory items discussed herein should be construed as being encompassed within the broad term “memory element.” The information being tracked or sent to GGSN/PGW 20, Gi-LAN SG 30, AAA element 42, PCRF 44, OCS 46 and OFCS 48 could be provided in any database, register, control list, cache, or storage structure: all of which can be referenced at any suitable timeframe. Any such storage options may be included within the broad term “memory element” as used herein. Similarly, any of the potential processing elements, modules, and machines described herein should be construed as being encompassed within the broad term “processor.” Each of the network elements and user equipment (e.g., mobile nodes) can also include suitable interfaces for receiving, transmitting, and/or otherwise communicating data or information in a network environment.

Note that in certain example implementations, the information transportation functions as outlined herein may be implemented by logic encoded in one or more tangible media, which may be inclusive of non-transitory media (e.g., embedded logic provided in an ASIC, in DSP instructions, software [potentially inclusive of object code and source code] to be executed by a processor, or other similar machine, etc.). In some of these instances, memory elements [as shown in FIG. 2] can store data or information used for the operations described herein. This includes the memory elements being able to store software, logic, code, or processor instructions that are executed to carry out the activities described herein. A processor can execute any type of instructions associated with the data or information to achieve the operations detailed herein. In one example, the processors [as shown in FIG. 2] could transform an element or an article (e.g., data) from one state or thing to another state or thing. In another example, the activities outlined herein may be implemented with fixed logic or programmable logic (e.g., software/computer instructions executed by a processor) and the elements identified herein could be some type of a programmable processor, programmable digital logic (e.g., a field programmable gate array (FPGA), a digital signal processor (DSP), an EPROM, EEPROM) or an ASIC that includes digital logic, software, code, electronic instructions, or any suitable combination thereof.

Turning to FIG. 3, FIG. 3 is a simplified block diagram illustrating example details of a logical view 70 of service chain 36.1 in accordance with one embodiment of the communication system. FIG. 3 includes Gi-LAN SG 30, a virtual network domain 80, which may include virtualized services A, B, C and D hosted or accessible by Gi-LAN SG 30 and chained together to form service chain 36.1, and a physical network domain 90, which may include computing resources (e.g., servers, gateways, load balancers, etc.) 92 a-92 d coupled together through fabric 94. As shown in FIG. 3, computing resource 92 a may provide service A, server 92 b may provide service B, server 92 c may provide service C and server 92 d may provide service D. It should be understood that the organization and/or association of servers 92 a-92 b and services A-D is provided for illustrative purposes only and is not meant to limit to the scope of the present disclosure. Also shown in FIG. 3, are classifiers 38 a-38 b, which may interface with service chain 36.1.

Using SDN techniques, resources within physical network domain 90 (e.g., servers 92 a-92 d, fabric 94, other computing resources, storage, etc.) may be abstracted into virtual network domain 80, which may include virtualized services A, B, C and D (e.g., virtual machines) interconnected using a service overlay or tunnel (dashed lines overlaying service interconnects). Virtual network domain 80 may provide a mechanism to manage subscriber flows through the services without the burden of having to manage the physical network connectivity of each virtualized service A-D. Abstraction into virtual network domain 80 may provide mechanisms for managing and/or operating physical network resources through network function virtualization (NFV). Computing resources 92 a-92 d providing services A-D may be moved or rearranged throughout physical network domain 90, throughout one or more clouds of computing resources, etc. while connectivity to the services may be maintained merely by updating forwarding and/or routing information configurable within virtual network domain 80.

Classifiers 38 a-38 b may mediate between virtual network domain 80 and physical network domain 90 using one or more logical interfaces. In various embodiments, controller 32 may be implemented as an SDN controller provisioned with one or more applications to interface with one or more policy and/or charging servers (e.g., PCRF 44, OCS 46, OFCS 48 as shown in FIGS. 1-2) and local policy anchor 34 in order to facilitate steering subscriber data traffic including service headers (e.g., NSH packet headers) through service chain 36.1 using classifiers 38 a-38 b. A forwarding or routing table may be maintained for each service A-D anchored service chain 36.1, which may enable forwarding packets for one or more subscribers from one service to another along the service chain or to a classifier (e.g., for a service at the end of a service chain, depending on traffic flow direction from or to a subscriber). In various embodiments, a forwarding or routing table for each service anchored on a given service chain (e.g., services A-D anchored on service chain 36.1) may be maintained/configured via controller 32 to manage subscriber flows between services or to classifiers 38 a-38 b. In some embodiments, a forwarding or routing table may also be maintained/configures by each service anchored on a given chain to manage subscriber flows between one or more services anchored on the chain or to classifiers 38 a-38 b.

Turning to FIG. 4, FIG. 4 is a simplified flow diagram 400 illustrating example operations associated transporting information to one or more chained services in one example operation of communication system 10. In one particular embodiment, these operations may involve a subscriber for a given UE (e.g., UE 12 a), Gi-LAN SG 30, controller 32, local policy anchor 34, classifier 38 a and any of service chain 36.1-36.N, which may include any of chained services A-E hosted or accessible by Gi-LAN SG 30 as shown in FIG. 1.

Processing may start at 410 when a subscriber's packet may be received by Gi-LAN SG 30 via classifier 38 a. At 412, classifier 38 a may determine if the subscriber's packet is a First-Sign-of-Life packet. If it is an FSOL packet, classifier 38 a can forward the packet to local policy anchor 34 at 420. If it is not an FSOL packet, classifier 38 a may continue to process the packet at 450, which will be discussed in further detail below.

If the subscriber's packet is an FSOL packet, local policy anchor 34 may determine if policy information for the subscriber has previously been cached at 422. At 424, if policy information for the subscriber has not been previously cached, local policy anchor 34 may load policy and/or charging information for the subscriber from one or more policy and/or charging servers (e.g., PCRF 44, OCS 46, OFCS 48) via controller 32 using one or more DIAMETER-based interfaces. Based on the policy and/or charging information for the subscriber, local policy anchor 34 may determine a service chain to receive the subscriber's packet at 430. At 432, local policy anchor 34 may communicate the determined service chain, subscriber policy and/or charging information and an IP address for local policy anchor 34 to classifier 38 a. At 434, classifier 38 a may store the information in an association with the subscriber for use in subsequent packets that may be received from the subscriber. The information may also be communicated to and stored by classifier 38 b. Recall further that classifiers 38 a-38 b may be implemented as a common classifier within Gi-LAN SG 30 for interfacing with service chains 36.1-36.N; thus, the information may be commonly stored for use with traffic originating either from a given UE or from a remote server (e.g., accessible via internet 50).

Returning to FIG. 4, classifier 38 a may encapsulate the policy and/or charging information and the IP address for local policy anchor 34 in a service header for the subscriber's packet at 440. At 442, classifier 38 b may append the packet with the service header. In one or more embodiments, the header may be an NSH as defined by IETF standards. At 446, classifier 38 a may inject the subscriber's packet with the service header into the determined service chain for the subscriber.

Recall, the subscriber's packet may not be an FSOL packet but rather a subsequent packet for the subscriber, which may be determined at 412. If the subscriber's packet is not an FSOL packet, classifier 38 a may determine a service chain to receive the subscriber's packet at 450 (e.g., using information stored at 434). At 452, classifier 38 a may determine information to be included in a service header for the subscriber's packet (e.g., policy and/or charging information, IP address for local policy anchor 34, etc.). At 440, classifier 38 a may encapsulate the policy and/or charging information and the IP address for local policy anchor 34 in a service header for the subscriber's packet. At 442, classifier 38 b may append the packet with the service header. In one or more embodiments, the header may be an NSH as defined by IETF standards. At 446, classifier 38 a may inject the subscriber's packet with the service header into the determined service chain for the subscriber. Although described for classifier 38 a, it should be understood that any of the operations illustrated in FIG. 4 may also be performed by classifier 38 b (e.g., for packets flowing toward a subscriber from a remote server or service via internet 50).

Turning to FIG. 5, FIG. 5 is a simplified flow diagram 500 illustrating example operations associated with consuming, by a given service anchored on a given service chain, policy and/or charging information that may be contained in a service header (e.g., NSH) for a subscriber's packet in one example operation of communication system 10. In one particular embodiment, these operations may involve a subscriber for a given UE (e.g., UE 12 a), Gi-LAN SG 30, controller 32, local policy anchor 34, classifier 38 a and any of services A-E anchored on any of service chains 36.1-36.N as shown in FIG. 1.

Processing may start at 510 when a give service anchored on a given chain may receive a subscriber's packet having a service header (e.g., an NSH). At 512, the service may consume policy and/or charging information included in the packet service header for the subscriber's packet. At 514, the service may determine if additional information is needed in order to enforce a given policy and/or charging rule/function. If so, at 520, the service may establish a session with local policy anchor 34 using the IP address for local policy anchor 34, which may be included in the service header for the subscriber's packet. At 522, the service may load the additional information. In various embodiments, policy and/or charging information may be loaded using push or pull mechanisms between the service and local policy anchor 34.

At 530, the service may enforce one or more policies and/or charging rules/functions for the subscriber (e.g., using additionally loaded information and/or information originally contained in the service header). After enforcing one or more policies and/or charging rules/functions, at 532 the service may forward the subscriber's packet with the service header to another service anchored on a chain or to a classifier (e.g., for a service at the end of a service chain, depending on the direction of flow for a packet).

Turning to FIG. 6, FIG. 6 is a simplified flow diagram 600 illustrating example operations associated with communicating new or updated policies from local policy anchor 34 to a given service hosted or accessible by Gi-LAN SG 30 (e.g., any of services A-E), which may be anchored on one or more service chains (e.g., any of service chains 36.1-36.N) in one example operation of communication system 10. In one particular embodiment, these operations may involve Gi-LAN SG 30, controller 32, local policy anchor 34, classifier 38 a and any of services A-E anchored on any of service chains 36.1-36.N as shown in FIG. 1. Although described for classifier 38 a, it should be understood that any of the operations illustrated in FIG. 6 may also be performed by classifier 38 b.

Processing may start at 610 when local policy anchor 34 may receive new or updated policy and/or charging information for a given service hosted or accessible by Gi-LAN SG 30. At 612, local policy anchor 34 may determine if a session is currently established with the service. If a session has been established with the service, at 620, local policy anchor 34 may push the new or updated policy and/or charging information to the service.

However, if a session has not been established with the service, at 630, local policy anchor 34 may communicate the new or updated policy and/or charging information to classifier 38 a. At 632, classifier 38 a may determine one or more service chain(s), which may include the service to receive the new or updated policy and/or charging information. At 634, classifier 38 a may encapsulate the new or updated policy and/or charging information in a service header (e.g., a NSH). At 636, classifier 38 a may append the service header to a packet. In one or more embodiments, the service header may be appended to a packet that does not include a subscriber's data payload or may be appended to a packet that does include a subscriber's data payload. At 638, classifier 38 a may inject the packet including the service header into the one or more determined service chains. Upon receiving the packet and corresponding header, at 640, the service may consume the policy and/or charging information in order to enforce the new or updated policies and/or charging rules/functions.

Note that with the examples provided above, as well as numerous other examples provided herein, interaction may be described in terms of one, two, three, or four network elements. However, this has been done for purposes of clarity and example only. In certain cases, it may be easier to describe one or more of the functionalities of a given set of flows by only referencing a limited number of network elements. It should be appreciated that communication system 10 (and its teachings) are readily scalable and can accommodate a large number of components, as well as more complicated/sophisticated arrangements and configurations. Accordingly, the examples provided should not limit the scope or inhibit the broad teachings of communication system 10 as potentially applied to a myriad of other architectures.

It is also important to note that the steps in the appended diagrams illustrate only some of the possible signaling scenarios and patterns that may be executed by, or within, communication system 10. Some of these steps may be deleted or removed where appropriate, or these steps may be modified or changed considerably without departing from the scope of teachings provided herein. In addition, a number of these operations have been described as being executed concurrently with, or in parallel to, one or more additional operations. However, the timing of these operations may be altered considerably. The preceding flows and activities have been offered for purposes of example and discussion. Substantial flexibility is provided by communication system 10 in that any suitable arrangements, chronologies, configurations, and timing mechanisms may be provided without departing from the teachings provided herein.

Numerous other changes, substitutions, variations, alterations, and modifications may be ascertained to one skilled in the art and it is intended that the present disclosure encompass all such changes, substitutions, variations, alterations, and modifications as falling within the scope of the appended claims. In order to assist the United States Patent and Trademark Office (USPTO) and, additionally, any readers of any patent issued on this application in interpreting the claims appended hereto, Applicant wishes to note that the Applicant: (a) does not intend any of the appended claims to invoke paragraph six (6) of 35 U.S.C. section 112 as it exists on the date of the filing hereof unless the words “means for” or “step for” are specifically used in the particular claims; and (b) does not intend, by any statement in the specification, to limit this disclosure in any way that is not otherwise reflected in the appended claims. 

What is claimed is:
 1. A method, comprising: receiving an update for a service at a local policy anchor included in a gateway, wherein the service is included in one or more service chains accessible by the gateway and wherein the update is at least one of a policy update and a charging update; determining if the local policy anchor has a session established with the service; communicating the update to a classifier within the gateway if the local policy anchor does not have a session established with the service; determining, by the classifier, one or more service chains including the service if the local policy anchor does not have a session established with the service; injecting, by the classifier, a packet including a service header containing the update into the one or more determined service chains including the service if the local policy anchor does not have a session established with the service; and communicating the update to the service from the local policy anchor if the local policy anchor has a session established with the service.
 2. The method of claim 1, wherein the communicating includes pushing the update to the service if the local policy anchor has a session established with the service.
 3. The method of claim 1, further comprising: consuming, by the service, the update included in the service header for the packet.
 4. The method of claim 1, wherein the service header is appended to a data packet containing subscriber data.
 5. The method of claim 1, wherein the service header is a Network Service Header including at least one of: policy information for the service; and charging information for the service.
 6. The method of claim 1, wherein the update is received from at least one of: a policy charging and rules function (PCRF); an online charging system (OCS); and an offline charging system (OFCS).
 7. One or more non-transitory tangible media encoding logic that include instructions for execution that, when executed by a processor, is operable to perform operations comprising: receiving an update for a service at a local policy anchor included in a gateway, wherein the service is included in one or more service chains accessible by the gateway and wherein the update is at least one of a policy update and a charging update; determining if the local policy anchor has a session established with the service; communicating the update to a classifier within the gateway if the local policy anchor does not have a session established with the service: determining, by the classifier, one or more service chains including the service if the local policy anchor does not have a session established with the service; injecting by the classifier a packet including a service header containing the update into the one or more determined service chains including the service if the local policy anchor does not have a session established with the service; and communicating the update to the service from the local policy anchor if the local policy anchor has a session established with the service.
 8. The media of claim 7, wherein the communicating includes pushing the update to the service if the local policy anchor has a session established with the service.
 9. The media of claim 7, the operations further comprising: consuming, by the service, the update included in the service header for the packet.
 10. The media of claim 7, wherein the service header is appended to a data packet containing subscriber data.
 11. The media of claim 7, wherein the service header is a Network Service Header including at least one of: policy information for the service; and charging information for the service.
 12. The media of claim 7, wherein the update is received from at least one of: a policy charging and rules function (PCRF); an online charging system (OCS); and an offline charging system (OFCS).
 13. An apparatus, comprising: a gateway; a memory element for storing data; and a processor that executes instructions associated with the data, wherein the processor and memory element cooperate such that the apparatus is configured for: receiving an update for a service at a local policy anchor included in the gateway, wherein the service is included in one or more service chains accessible by the gateway and wherein the update is at least one of a policy update and a charging update; determining if the local policy anchor has a session established with the service; communicating the update to a classifier within the gateway if the local policy anchor does not have a session established with the service; determining, by the classifier, one or more service chains including the service if the local policy anchor does not have a session established with the service; injecting, by the classifier, a packet including a service header containing the update into the one or more determined service chains including the service if the local policy anchor does not have a session established with the service; and communicating the update to the service from the local policy anchor if the local policy anchor has a session established with the service.
 14. The apparatus of claim 13, wherein the communicating includes pushing the update to the service if the local policy anchor has a session established with the service.
 15. The apparatus of Claim 13, wherein the service header is appended to a data packet containing subscriber data.
 16. The apparatus of Claim 13, wherein the service header is a Network Service Header including at least one of: policy information for the service; and charging information for the service.
 17. The apparatus of claim 13, wherein the update is received from at least one of: a policy charging and rules function (PCRF); an online charging system (OCS); and an offline charging system (OFCS). 